各位早安,書接上回我們說到條件運算式的用法,今天我們要來介紹程式設計另一個非常重要的工具 迴圈
迴圈就是當我們需要重複做某些事的時候讓我們不用一行一行重複打
而是利用迴圈的方式實現這個需要
通常迴圈會有設定執行幾次後停止的條件 裡面會放需要重複執行的功能
沒有停止條件的迴圈稱之為無線迴圈 會成為不斷消耗運算資源的病毒
for 變數 in range(起始值,結束值,遞增值):
(縮排)要重複執行的程式碼
(注意結束值本身不含在內)
簡單範例看出用途 印出1到10
一樣先建立新檔案 loop.py
相信大家熟到不能再熟了
使用 for 迴圈前
可以看到一樣的事重複十次有夠麻煩的
使用 for 迴圈後
一樣的功能只要兩行程式碼就完成了
跟原本的十行差距八行
更別說當你需要印一到一百時
這樣理解迴圈的厲害了吧
for 迴圈不只可以遞增 他也可以拿出 list 中的元素或是 string(字串) 中的字元
範例如下
list 的 for 迴圈
可以看到 for 迴圈會把第一層的元素一個一個抓出來
就算元素是 list 也會按照 list 的格式跟規則呼叫
string 的 for 迴圈
可以看到也是一個字元一個字元抓出來
空格也算一個字元
for 迴圈有一個變數來決定執行的次數
但是 while 迴圈沒有
while 迴圈是利用布林值的判斷來決定是否終止迴圈
當 while 收到 True 則繼續執行迴圈直到收到 False 才終止迴圈執行
因此當你的條件設定有問題就會使這支程式不斷執行 害你電腦發燙掛掉
所以我們在條件設定上要小心
當你不小心寫出這樣的程式 在終端按下 CTRL+C 就可以強制終止它
就像這樣即使只有 True 也可以執行
按下 CTRL+C 強制終止它之後會跑出下面的提示
所以正確的寫法是在條件這邊設定一個當我想做的次數完成後會變 False 的條件
while 條件式:
(縮排)要重複執行的程式碼
寫法如下
可以看到當 x 變成11時 while 迴圈收到條件式的 False 就停止執行了
通常會跟 if else 一起用
用找36跟120最小公倍數來當範例
我們使用 while 迴圈
可以看到我在 while 迴圈設計上是使用了危險的無限迴圈用來測試 break 的功用
我設計的邏輯是一找到36跟120的公倍數時就 break 出來
然後在迴圈外 我加了一個 print("end") 用來確認迴圈結束了
一樣用找36跟120最小公倍數來當範例
可以看到當 if 條件滿足(還沒找到)
就會跳過下面的 print(x) 跟 break 直接執行下一次迴圈
用印出1到10做示範
這次我們用 for 迴圈
可以看到迴圈結束後 執行了 else 內的 print("end")
那被 break 會怎樣呢
可以看到如果迴圈被 break 結束就不會執行 else 內的 print("end")
當次的10也因為被 break 而沒有印出來
打完疫苗不可以劇烈運動喔
你喜歡跟個性相近還是個性不同的人相處呢